Electromagnetic interference signal detection

ABSTRACT

In one embodiment, an apparatus includes an electrode that is coupled to a body of a user and is configured to receive a signal from the body. The received signal is based on an electromagnetic interference signal generated by an object that is external to the apparatus. The apparatus further includes one or more processors coupled to the electrode. The processors are configured to detect, based on the signal received by the electrode, one or more of: an interaction between the user and the object, an identity of the object, or a context surrounding the apparatus.

RELATED APPLICATIONS

This application claims the benefit, under 35 U.S.C. § 120, as acontinuation-in-part of U.S. patent application Ser. No. 15/153,362 (nowU.S. Pat. No. 10,073,578) filed on 12 May 2016, which claims thebenefit, under 35 U.S.C. § 120, as a continuation-in-part of U.S. patentapplication Ser. No. 14/458,110, filed on 12 Aug. 2014, which claims thebenefit under 35 U.S.C. § 119(e), of each of the following: U.S.Provisional Patent Application No. 61/865,448, filed 13 Aug. 2013; U.S.Provisional Patent Application No. 61/924,558, filed 7 Jan. 2014; U.S.Provisional Patent Application No. 61/924,604, filed 7 Jan. 2014; U.S.Provisional Patent Application No. 61/924,625, filed 7 Jan. 2014; U.S.Provisional Patent Application No. 61/924,637, filed 7 Jan. 2014; U.S.Provisional Patent Application No. 61/969,544, filed 24 Mar. 2014; U.S.Provisional Patent Application No. 61/969,558, filed 24 Mar. 2014; U.S.Provisional Patent Application No. 61/969,590, filed 24 Mar. 2014; U.S.Provisional Patent Application No. 61/969,612, filed 24 Mar. 2014; andU.S. Provisional Patent Application No. 62/000,429, filed 19 May 2014.U.S. patent application Ser. No. 15/153,362 (now U.S. Pat. No.10,073,578) also claims the benefit, under 35 U.S.C. § 119(e), of eachof the following: U.S. Provisional Patent Application No. 62/219,635,filed 16 Sep. 2015; U.S. Provisional Patent Application No. 62/260,244,filed 25 Nov. 2015; and U.S. Provisional Patent Application No.62/260,247, filed 25 Nov. 2015. Each of these applications isincorporated herein by reference.

TECHNICAL FIELD

This disclosure generally relates to electronic devices that detectelectromagnetic interference.

BACKGROUND

A first device may identify a second device using a communcationschannel set up between the two devices. For example, the second devicemay encode identification information in a signal, such as a Bluetoothsignal or Wi-Fi signal, and transmit the encoded signal to the firstdevice. The first device may detect the signal and decode it in order toaccess the encoded identification information of the second device.However, device identification may not occur if one or both devices arenot capable of decoding, encoding, transmitting, and/or receiving thesignal. In addition, noise or other interference in the communicationchannel may prevent device identification.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates example electromagnetic interference signalsgenerated by example electronic devices.

FIG. 2 illustrates an example detection of electromagnetic interferencesignals by an example detecting device.

FIG. 3 illustrates example hardware of an example device for detectingelectromagnetic interference signals.

FIG. 4 illustrates an example method for processing and analyzingdetected electromagnetic interference signals.

FIG. 5 illustrates an example method for processing, analyzing, andclassifying EMI signals.

FIG. 6 illustrates touch detection on devices that do not containtouch-detection capabilities.

FIG. 7 illustrates an identification of multiple users interacting witha touch-sensitive device.

FIG. 8 illustrates an identification of a user interacting with atouch-sensitive device.

FIG. 9 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Electronic devices, cables, wires, and other conductors emitelectromagnetic radiation when operating or exposed to electromagneticand electronic signals. For example, power lines, appliances, and mobileand computing devices may emit electromagnetic radiation, which may alsobe referred to as environmental electromagnetic interference (EMI) orelectronic noise. A conductive object may couple to the EMI in itsenvironment. For example, coupling may occur by direct coupling (i.e.,contact forming a conductive pathway) with an object generating EMI orby capacitive coupling to the object generating EMI. As an example, thehuman body is a slight conductor and thus may couple to, and act as anantenna for, EMI signals. An object coupled to EMI signals may couple tosecond conductive object and transmit EMI signals to the secondconductive object. For example, a portion of a user's body maycapacitively couple to an electrode of a device and transmit to theelectrode EMI signals coupled to the body.

The signals received from a conductive object coupled to EMI signals maybe characteristic of the EMI signals generated and characteristic of theobject. For example, the frequencies, bandwidth, amplitudes, and phaseof EMI signals may be characteristic of the electronic componentsgenerating the EMI and the conductive properties of the object coupledto the EMI. FIG. 1 illustrates example devices 110A, 110B, and 110Cgenerating example EMI signals 120A, 120B, and 120C, respectively. WhileFIG. 1 illustrates the amplitude (vertical axis) of EMI signalsgenerated by devices 110A, 110B, and 110C as a function of frequency ofthe EMI signal (horizontal axis), this disclosure contemplates thatgenerated EMI signals may be represented in any suitable form, includingbut not limited to the amplitude of an EMI signal (or particularcomponent of an EMI signal) as a function of time.

As illustrated in FIG. 1, EMI signals generated by a device may dependon the make, type, or model of the device. Particular characteristics ofEMI signals may depend on the precise configuration and operation ofelectronic components within a device such that devices- and/orcomponents within the devices—are uniquely identifiable. Moreover, EMIsignals may vary based on the state or mode of operation of the device.For example, EMI signals may identify that: a battery is charging;Bluetooth or Wi-Fi components are operating; a display is operating; orthat particular content is displayed on a display. EMI signals may varybased on the specific type of electronic components used in a circuit,tolerance values, the specific configuration of those components, andthe electrical signals and fields those circuits are exposed to. Thus,individual components, circuits, and devices may be identified based onthe EMI signals individually and collectively generated by componentsand collection of components. The signals can then be processed toidentify the components or devices generating the signals, identify theoperating mode or state of components or devices, and/or identify anobject coupled to the signals and transmitting the signals. Processingmay also associate specific signals with an environment or context ofthe device detecting the EMI signals. U.S. patent application Ser. No.14/458,110, filed on 12 Aug. 2014 and incorporated herein by reference,discloses examples methods and systems for detecting and processing EMIsignals, along with associated functionality.

In particular embodiments, a device worn or held by a user may receivesignals from the user's body that are based on EMI coupled to the user'sbody. The signals received by the device may be processed to determineinteractions between the user and the device emitting the EMI, identifythe device emitting EMI, determine a context of the user, or anysuitable combination thereof. FIG. 2 illustrates an example device 230having example hardware for detecting and processing EMI signals. Asdescribed above and illustrated in FIG. 2, EMI signals 220 generatedfrom an object such as device 210 are coupled to a body of a user 240,either directly or capacitively. Device 230 is coupled, either directlyor capacitively, to user 240 and receives EMI signals transmittedthrough the user's body. As described more fully herein, device 230receives and processes the EMI signals transmitted by user 240 todetermine information about device 210, interactions between the user240 and the device 210, and/or the context surrounding the device 230.While FIG. 2 illustrates an example device 230 this disclosurecontemplate that EMI signals may be received and processed by anysuitable device or number of devices. For example, device 230 may be: awearable device such as a watch, ring, necklace, or pendant; embedded inmobile devices such as smart phones and tablets; embedded in keyboards,mice, laptops; embedded in appliances, furniture, public displays, cars(such as seats or steering wheels), clothing, health trackers,headbands, wristbands, or accessories such as backpacks. This disclosurecontemplates any suitable device having any suitable functionality, suchas for example, the wearable devices and associated functionalitydescribed in U.S. Pat. No. 9,030,446 issued 12 May 2015 and incorporatedherein by reference.

Device 230 may receive signals from user 240 by one or more electrodesof the device 230 coupled to the user. In particular embodiments,coupling may be direct, such that all or part of the electrode is incontact with the user's skin. In particular embodiments, coupling may beindirect, such that the electrode is capacitively coupled to the user.For example, the electrode may be separated from the user by a coveringfor device 230 or by the user's clothing. This disclosure contemplatesany suitable number and configuration of electrodes for receiving EMIsignals from user 240. For example, the electrode technology andconfigurations disclosed in U.S. patent application Ser. No. 14/458,110,filed on 12 Aug. 2014 and incorporated herein by reference, forreceiving EMI signals may be used, when suitable. In particularembodiments, electrodes may be flexible enough to conform to thecontours of user 240, such as for example, a wrist or head of user 240.In particular embodiments, one or more electrodes of device 230 mayreceive EMI signals from the environment, i.e., other than from user240, for example the EMI signals described in U.S. patent applicationSer. No. 14/458,110.

Device 230 may include one or more components—including hardware,software, or both—for processing a received EMI signal. For example,device 230 may include components 250 for amplifying an EMI signal,components 260 for analyzing a signal, and components 270 forclassifying a signal.

FIG. 3 illustrates example components of device 230 for amplifying andprocessing an EMI signal. As illustrated in FIG. 3, device 230 mayinclude a pre-amplifier, such as low noise trans-impedance amplifier310. In particular embodiments, a pre-amplifier may apply variable gainto the received signal. Device 230 may also include one or more filters,such as low pass filter 320, to filter the output from a pre-amplifier.Device 230 may include an amplifier, such as variable gain amplifier330. In particular embodiments, the amplifier may scale the signal, forexample to ensure that the signal stays within a particular amplituderange. In particular embodiments, the amplitude range may depend on thedesired application or functionality. In particular embodiments, a gainassociated with the amplifier may be dynamically variable. In particularembodiments, variable gain of the pre-amplifier, variable gain of theamplifier, and cutoff frequencies of the filter(s) can be controlled inhardware, software, or both, depending on the application andresponsiveness required. In particular embodiments, device 230 mayinclude an analog to digital converter (ADC) 340. In particularembodiments, ADC 340 may have a programmable sampling frequencycontrollable by hardware, software, or both. In particular embodiments,a device may be tuned to use regulatory-allowed EMI emissions of adevice generating EMI and reject other sources of noise. In particularembodiments, doing so may avoid dynamically characterizing EMI signals.

In particular embodiments, device 230 may include hardware or softwarefor analyzing EMI signals, such as signals received by an analog frontend and an ADC. FIG. 4 illustrates an example method 400 for analyzingEMI signals. At step 410, a frequency analysis of all or some of EMIsignals is performed, for example using a fast Fourier transform (FFT)on the received signals. Step 410 may calculate the frequency domainrepresentation of the received EMI signals or a portion the EMI signal.Certain frequencies may be identified as noise, either during this pointor any other suitable point (such as a filtering stage) in the signalprocessing. In particular embodiments, a particular frequency range maybe analyzed. For example, signals in 1 to 600 kHz, 600 to 1200 kHz, or 1to 1200 kHz may be analyzed. In particular embodiments, signals outsideof the frequency may be ignored or filtered, for example by using filter320 of FIG. 3.

At step 420, a frequency spectrum may be parsed for further analysis,such as for example into a particular number (e.g., 1000) bins or intobins of a particular bandwidth. In particular embodiments, only aportion of the frequency signals may be parsed.

At step 430, characteristics of the EMI signal may be analyzed. Forexample, the amplitude of the signal within each frequency bin or rangemay be determined, for example, by analyzing the power spectrum density(PSD) of the signal. As another example, the phase of the signal may bedetermined. In particular embodiments, statistical methods may be used,for example, to calculate a standard deviation, root-mean-squared value,mean, etc. of the EMI signal or of particular aspects of the EMI signal.While this disclosure discusses example signal analysis that occurs inthe frequency domain, this disclosure contemplates any suitableanalysis, including analysis in the spatial or temporal domain.Moreover, this disclosure contemplates that any other suitable data,such as data from other sensors, may be analyzed and characterized asappropriate to perform the functionality described herein.

At step 440, the analyzed data may be normalized and filtered, at whichpoint method 400 may end. Particular embodiments may repeat one or moresteps of the method of FIG. 4, where appropriate. Although thisdisclosure describes and illustrates particular steps of the method ofFIG. 4 as occurring in a particular order, this disclosure contemplatesany suitable steps of the method of FIG. 4 occurring in any suitableorder. Moreover, this disclosure contemplates any suitable method foranalyzing EMI signals including any suitable steps, which may includeall, some, or none of the steps of the method of FIG. 4. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 4, this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 4.

In particular embodiments, step 430 may include Principal ComponentAnalysis (PCA) to select a lower-dimensional subspace in which toproject a raw feature vector. In particular embodiments, the output ofthe PCA process emphasizes—and may maximize—the difference in variancebetween each component or dimension in the lower-dimensional subspace.The output of PCA may be transformation matrix that is used, forexample, as part of step 440.

In particular embodiments, signal analysis may include subspace lineardiscriminant analysis (LDA), quadratic discriminant analysis (QDA), orboth. For example, signal data consisting of N frequency bins of the PSDmay be used. In addition, changes of the EMI signal within some or allof those N frequency bins may be analyzed as a function of time. Step430 may analyze the entropy and variance of each frequency bin acrossknown interaction events and environments in order to choose a subspaceto project the data. In particular embodiments, a size of the subspacemay be chosen. In particular embodiments, a size of the subspace mayvary, for example based on the intended functionality. In particularembodiments, principal component analysis may be performed and dataprojected into the subspace. In particular embodiments, LDA or QDA maythen be applied. In particular embodiments, any combination of PCA, LDA,and QDA may be applied.

In particular embodiments, signal analysis may apply regression methodsto EMI signals, for example to determine the location of a touch eventon device 210. For example, an LDA or QDA may be applied. Next, thedistance in a higher dimensional space between a single sample(pre-processed PSD) and all linear discriminants may be calculated.Finally, a regression model may be trained to fit these distances to thespecific location of the touch event in the two dimensional space of thedisplay using, e.g., Cartesian coordinates.

In particular embodiments, signal analysis may include step localizedbinary search methods, for example to localize a touch event on device210. For example, an N-bins dimensional PSD-space of the signal in ordermay be analyzed to build a tree of classifiers to predict the locationof the point of interaction with the device. In particular embodiments,the overall model may be restricted to binary trees. For each sample,the most outer classifier is chosen and used to split the area into twoparts depending of the variances and other statistical metrics of thefeatures (e.g., the FFT bins). The search method then estimates which ofthe two areas the sample belongs to by scoring the areas with aprobability score and selecting the area with the highest probabilityscore. The search method may then navigate down the tree of classifiers,each time splitting one area into two sub-areas. Finally, a specificarea of the device is estimated as the location at which the touch eventtook place.

In particular embodiments, device 230 (or any other suitable processingdevice) may process signals received from user 240 at pre-determinedintervals, such as every second. In particular embodiments, theprocessing device may sample more frequently after one or more EMIsignals of interest are detected. In particular embodiments, theprocessing device may apply processing to all received signals (e.g.,all signals in the entire bandwidth), and then focus processingresources on particular bandwidths of interest once EMI signals in thosebandwidths are identified. In particular embodiments, the processingdevice may look at particular bandwidths of interest based on a desiredfunctionality, for example bandwidths at which a device of interesttransmits characteristic EMI signals. In particular embodiments, aprocessing device may determine changes in EMI signals by subtractingbackground signals or previously received EMI signals from currentlyreceived EMI signals.

This disclosure contemplates that any suitable hardware, software, orboth may perform any of the signal processing and analysis stepsdiscussed herein. Moreover, this disclosure contemplates that device 230may be all or part of any object that can couple to the user, eitherdirectly or capacitively. In particular embodiments, certain componentsor aspects described as being performed by device 230 or specificcomponents of device 230 may be distributed across a number of devices.For example, a device may include one or more electrodes for receiving asignal and a transmitter for communicating the signal to one or morecomputing devices for all or certain processing steps. Device 230 may bepart of a network of interconnected computing devices, and signalacquisition, processing, analysis, and classification may be distributedacross one or more other computing devices, performed by device 230, orany suitable combination thereof.

Device 230 may include one or more components for classifying an EMIsignal. For example, device 230 may identify an object, such as device210, generating EMI signals; may identify an interaction between user240 and device 210, such as a contact or proximity of user 240 to device210 or a gesture performed by user 240; may locate a portion of device210 at which an interaction with user 240 occurs; may identify an object(in this example, user 240) to which it is coupled; or any suitablecombination thereof.

In particular embodiments, device 230 may perform one or morecalibration procedures. For example, to locate the position of a touchevent on device 210, device 230 may instruct the user to touch device210 at a particular location. Device 230 may analyze and record theresulting received EMI signal and associate the signal with thecalibration event. As another example, the device may instruct the userto position the device on a certain body part, analyze and record theresulting received EMI signal, and associate the signal with thatparticular body part. As another example, the device may instruct theuser to enter a particular room or physical location, analyze and recordthe resulting received EMI signal, and associate the signal with thatparticular room or location. As another example, the device may instructthe user to directly couple or capacitively couple the device to theuser, analyze and record the resulting received EMI signal, andassociate the signal with direct or capacitive coupling, respectively.In particular embodiments, the device may provide a user interface forthe user to input particular calibration events or conditions. Forexample, the device may receive feedback from a user indicating that theuser is interacting with a particular device, is performing a particularinteraction (e.g., gesture), is in a particular location, is performinga particular activity (e.g. exercising), that a particular conditionexists (e.g. that the user is sweating, that it is raining outside,etc), or the like. In particular embodiments, the device may providepre-set calibration events for a user to select. In particularembodiments, the device may allow a user to enter the user's owncustomization event. In particular embodiments, a device may include orhave access to data from one or more calibration procedures performedwith one or more test devices, users, environments, and/or conditions.For example, device 230 may include or have access to EMI signals fromcommonly used smart phones or a range of user characteristics (e.g.,age, body size or type, etc).

In particular embodiments, device 230 may calibrate to a specific userbased on the user's body impedance. For example, device 230 may transmitone or more test signals between two or more electrodes coupled to theuser's body and determine the impedance based on the transmitted andreceived signals. In particular embodiments, the calibration may becontext dependent, and one calibration may be performed and recordedwhen the user is exercising and another when the user is sitting still.In particular embodiments, device 230 may perform multiple calibrations,and thus impedance measurements, each corresponding to a particularfrequency or frequency range. In particular embodiments, suchcalibrations may be stored in a profile for the user. In particularembodiments, recent calibrations may be combined with past calibrationsto enhance accuracy. In particular embodiments, more recent calibrationsmay be weighted more highly than older ones.

In particular embodiments, the results of a calibration may be used toprovide feedback to a user; adjust signal processing, analysis, orcharacterization, or both. For example, if a calibration indicates thatan electrode is not making good contact with a user, the user may benotified of that fact. As another example, device 230 may adjust thegain of a received signal, for example to ensure that the signal stayswithin a particular amplitude. In addition or the alternative, device230 may: adjust the sampling rate used to acquire an EMI signal; mayadjust cutoff frequencies used to detect or process an EMI signal; mayperform undersampling, or any suitable combination thereof.

In particular embodiments, EMI signals may be used to sense a contextsurrounding the device 230 or the user. For example, at home the usermay surrounded by EMI from a TV, mobile phone, and refrigerator, whileat an office the user may be surrounded by EMI from a desktop computer,office lighting, and office phone system. Received EMI signal can thusbe compared it to a data store associating EMI signals with particularnoise, environments, and locations. In particular embodiments,similarities between the received EMI signal and signals in the datastore may be used along with machine learning algorithms to deduce theuser's context, such as location and other environmental factors.Different locations may have very different noise contexts. For example,a break room may include EMI from the coffee machine, while a meetingroom may include EMI from a large TV or projector, and as FIG. 1illustrates, those devices may each produce identifiably distinct EMIsignals.

FIG. 5 illustrates an example technique 500 for processing, analyzing,and classifying EMI signals, for example to identify devices,differentiate between portions of devices, or determine proximity to adevice (including contact with a device). Particular embodiments ofmethod 500 may include machine learning techniques, as described morefully herein.

Method 500 may begin at step 510, in which preprocessing of EMI signalsoccurs. This disclosure contemplates any suitable pre-processing may beperformed, including some or all of the steps of method 400 and thetechniques described herein. After pre-processing is performed, method500 may include step 520 for training a classification model used toclassify EMI signals. For example, step 520 may include labeling EMIsignals or particular aspects thereof according to the class in whichthose signals belong. A class may be one or more samples of a particularfingerprint. A fingerprint is data representative of a device and, inparticular embodiments, a particular context. In particular embodiments,a fingerprint may be EMI signals (or aspects thereof) that arecharacteristic of a particular device, such as a particular washingmachine or tablet. In particular embodiments, a fingerprint may be EMIsignals (or aspects thereof) that are characteristic of a particularlocation and/or a particular device in a particular location. Forexample, one fingerprint may be characteristic of a user's tablet in theuser's living room (determined, for example, based on sensor data suchas EMI signals (or lack thereof) from other devices in the user's livingroom) and another fingerprint may be characteristic of the same tabletbut in the user's bedroom (again based on sensor data such as EMIsignals (or lack thereof) from other devices in the user's bedroom). Inparticular embodiments, a fingerprint may be characteristic of aparticular device at a particular time. For example, one fingerprint maycorrespond to an air conditioner during the afternoon (when the airconditioner is likely to be experiencing a relatively large load), andanother fingerprint may correspond to the air conditioner during theevening (when the air conditioner is likely to be experiencing arelatively lighter load). In particular embodiments, a fingerprint maybe characteristic of a particular device over a particular period oftime. For example, a fingerprint may correspond to a particularautomobile while the engine of that automobile is started. In thatexample, the fingerprint may correspond to the particular EMI signals(or aspects thereof) generated by the starting engine. In addition orthe alternative, the fingerprint may correspond to changes in the EMIsignals over time, such as one or more amplitude changes at a particularfrequency or range of frequencies (e.g., in a particular frequency bin)over a particular period of time.

This disclosure contemplates that a fingerprint may include any suitableaspects of a device and its context. This disclosure contemplates thatmultiple fingerprints with different levels of detail may correspond toa particular device and/or contexts. For example, a fingerprint maycorrespond to “car” generally, another to a particular model of a car,another to a particular instance of that model of car, another to aparticular instance in a particular location, another to a particularinstance at or over a particular time, and another to a particularinstance associated with a particular activity. In particularembodiments, some or all fingerprints associated with a classificationmodel may be predetermined for device 230. In particular embodiments,some or all fingerprints associated with a classification model may bedynamically determined as device 230 is used. For example, a user mayindicate a particular fingerprint with a particular level ofgranularity, and device 230 may associate the EMI signals or aspectsthereof coincident with the user input as being characteristic of thatfingerprint. As another example, a fingerprint may be dynamicallyadjusted as additional samples associated with a fingerprint aredetected and processed by device 230. While the examples above describefingerprints based on the EMI signals characteristic of thatfingerprint, fingerprints may also include other sensor data.

In particular embodiments, method 500 may include step 530 foroptimizing a classification model. Step 530 may include machine-learningtechniques to optimize a classification model. For example, severaltraining runs associated with a particular fingerprint may be made in acontrolled environment, and the data collected from each training runmay be associated with that fingerprint and, in particular embodiments,used to update that fingerprint. As another example, user-end trainingruns may be used to determine a fingerprint, such as asking the user towalk through particular rooms of the user's house and recording the EMIdata associated with each room, or asking the user to contact differentportions of a particular device and recording the EMI data associatedwith each portion. In particular embodiments, affirmative user feedbackmay be used to optimize a classification model. For example, when device230 detects EMI signals determined to correspond to a fingerprint,device 230 may provide a GUI to the user asking the user to indicatewhether the fingerprint is accurate (e.g., whether a user did just startthe engine of a car.) In particular embodiments, lack of negative userfeedback may be used to optimize a classification model. For example,one or more inputs, such as a particular gesture, may allow a user to“undo” a fingerprint determination and/or functionality associated withthat determination. A fingerprint determination may be determined to beaccurate unless a user has provided input undoing that determination orfunctionality associated with that determination. In particularembodiments, EMI signals determined not to correspond to any storedfingerprint may be discarded. In particular embodiments, data associatedwith several devices 230 may be collected and used to optimize aclassification model. For example, fingerprints (perhaps from twodifferent users) associated with two separate instances of a particulartelevision model may be used together to update a fingerprint for thattelevision model. While this disclose describes example techniques formodel optimization, this disclosure contemplates that step 530 mayinclude any suitable model optimization techniques.

Method 500 may include step 540, which calculates decision boundariesfor a classification model. In particular embodiments, step 540 mayinclude determining the boundaries in an N-dimensional spacecorresponding to N-frequency bins used for classifying an EMI signal. Inparticular embodiments, step 540 may include determining the boundariesin a subset of the N-dimensional space, for example using PCA techniquesdescribed more fully above. In particular embodiments, each dimension ofthe N-dimensional space may correspond to the subset of frequenciesranges of interest. In particular embodiments, LCA may be used todifferentiate the boundaries corresponding to different fingerprints. Inparticular embodiments, step 540 may be performed dynamically whiledevice 230 is in operation. For example, EMI signals detected by adevice may be determined to correspond (or not to correspond) to aparticular fingerprint. That determination may be used to update thedimensions of interest in the N-dimensional space, to update theboundaries between one or more fingerprints, or both.

Although this disclosure describes and illustrates particular steps ofthe method of FIG. 5 as occurring in a particular order, this disclosurecontemplates any suitable steps of the method of FIG. 5 occurring in anysuitable order. Moreover, this disclosure contemplates any suitablemethod for processing, analyzing, and classifying EMI signals includingany suitable steps, which may include all, some, or none of the steps ofthe method of FIG. 5. Furthermore, although this disclosure describesand illustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 5, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 5.

In practical embodiments, EMI signals detected by device 230 areevaluated against the classification model constructed by method 500. Inparticular embodiments, such signals may be evaluated by preprocessingraw EMI signal and evaluating the fingerprint(s) that the signal belongsto (if any) by evaluating the preprocessed signal against theN-dimensional space (or subset of N-dimensional space) constructed bymethod 500. As described above, EMI signals may also be used to updatethe classification model constructed by method 500.

In particular embodiments, one or more devices may use estimated contextto provide particular functionalities. For example, when a userapproaches a printer, queued documents may be automatically printed. Asanother example, a shared device, such as a display for displayingpresentations, may be automatically controlled by a user when the useris near the device. In particular embodiments, a user may configurefunctionalities associated with a particular context. For example, auser may input rule that are triggered or are in part based on aparticular context being sensed. While the examples above discusscontext in terms of location and the presence of electronic devices,this disclosure contemplates detecting context from any suitable signalsfrom any suitable object, such as the humidity, a user's activity rate,a time of day, or any other suitable context of the user.

In particular embodiments, device 230 may communicate with device 210.For example, device 210 may transmit communication signals encoded inEMI signals to device 230. Device 210 may generate such signals by, forexample, modifying the display (e.g. turning on and off at least aportion of the display, dimming at least a portion of the display,etc.), turning a Wi-Fi module or Bluetooth module on and off, orenabling or disabling any particular circuitry in a predeterminedpattern. On high framerate displays, modification of the display may bedone in between frames of the visual content. In particular embodiments,the frequency of the communication signals may be in a predeterminedportion of the electromagnetic spectrum. As explained by these examples,device 210 may communicate with device 230 using device 210's existinghardware, even if one or both devices are not capable of communicatingusing a particular communications technology. In particular embodiments,both devices may execute or access software identifying a predeterminedprotocol for encoding and decoding communication signals.

In particular embodiments, device 230 may communicate directly withdevice 210, for example using a Wi-Fi or Bluetooth connection. Inparticular embodiments, device 230 may sense and identify device 210 andestablish a communication session over any suitable communicationstechnology.

In particular embodiments, a piece of hardware may be attached to device210 to transmit or facilitate transmission of EMI signals. For example,the hardware may include resonators that amplify and filter specificfrequency components from the device. Such hardware may include dongles,stickers, tags, or any other suitable hardware.

EMI signals received by device 230, whether in raw or processed form(such as signals processed according to method 400 of FIG. 4, method 500of FIG. 5, or both) may be used for a number of functionalities. Forexample, such signals may be used to identify the source of the EMIsignals, communicate with the source, identify a user, identify acontext of the user or device 210, or any other suitable functionality.In particular embodiments, functionality may be provided by comparingreceived signals or aspects of received signals to reference data in adata store associating functionality with particular EMI signals orparticular aspects of those signals. This disclosure contemplates thatsuch data may take any suitable form, such as a profile for device 210,a profile for a device or object generating the EMI signals, a profilefor user 240, a profile for the surrounding context, a record in adatabase, or any suitable combination thereof. Based on the comparison,a device making the comparison, which may be device 230 or any othersuitable computing device, may determine to initiate a particularfunctionality, ignore the signal, store the signal, perform furtherprocessing on the signals, characterize the signals as noise, or anysuitable combination thereof. In particular embodiments, device 230 mayinclude all or some of the reference data. In particular embodiments,data stored by device 230 may be particular to the user, e.g. based oncalibration described above. In particular embodiments, reference datamay be stored on any suitable computing device. In particularembodiments, data may be representative of an aspect of a user 240, suchas based on training performed with, or data collected from, a set ofusers having one or more similar characteristics (e.g., age, sex,location, etc.) to user 240. In particular embodiments, signals orcharacteristics of signals may be stored and used to refine referencedata. In particular embodiments, data may be used by machine learningalgorithms to revise data to ensure more accurate classification of EMIsignals and signals characteristics. In particular embodiments, suchalgorithms may use input from a user, such as input indicating whether aparticular functionality should have been or should not have beenperformed in response to a particular signal.

As described above, EMI signals received by a device can be used toidentify the source of the EMI signals at the object (e.g., device),circuit, or component level. Using EMI signals to identify a sourceallows identification without requiring signals specifically intended tobe used for identification. As described above, the EMI signals (such asPSD information, phase information, or any suitable aspect)characteristic to particular objects may be stored using any suitabledata structure. In particular embodiments, a user can also add devicesto the database by explicitly identifying one or more devices that aretransmitting EMI signals to the receiving device. The receiving device(or any other suitable computing device) may then correlate the signalswith the identified device. In particular embodiments, datacharacteristic EMI signals of a device may be determined by testing thedevice, or a representative device similar to the device, identifyingthe resulting EMI signals, and storing the signals or aspects of thesignals in connection with the identification of the device. Inparticular embodiments, such data may be included on device 230, may bestored in a location accessible by several different devices 230 (suchas in a database on a server device), or both.

In particular embodiments, device identification may take into accountany other suitable data, such as context, the identity of a user, orboth. In particular embodiments, a device's state or mode of operationmay be identified along with or as an alternative to deviceidentification. For example, a device's operational state, i.e. thecomponents operating within the device and the particular mode ofoperation of those components, may be identified from EMI signals. Forexample, display patterns on a display or inductors such as Bluetooth orWi-Fi modulations may be sensed based on the EMI signals particular tothose components during particular modes of operation.

In particular embodiments, device identification may be used to providenotifications to a user. For example, a user could associate remindersor notes with particular devices. For example, a user contacting acoffee machine may be reminded of upcoming appointments, to buy morecoffee, or the like. In particular embodiments, device identificationmay be used in association with device state information to providefunctionality to a user. For example, device 230 may detect a change inEMI signals from a device such as an oven or washing machine indicatingthat the device has finished operating. Thus, the user may be informedthat the oven has finished cooking or that the washing machine hasfinished its wash cycle. As another example, device 230 may track alength of time of an operational state of a device, such has the amountof time a television, computer, or video game console has been poweredon. In particular embodiments, device and state identification may beused to log data regarding a device's operation. Such logs may includewhen an event, such as data transfer, happens, for how long it happens,how frequently it happens, etc.

In particular embodiments, device and state information may be usedalong with communication between devices to provide personalizedfunctionality. For example, device 230 could identify a particulardevice and its state, and then communicate the identity of itself or anassociated user to the identified device. The device generating the EMIsignals may then access settings or other data that customizes theuser's experience. For example, a coffee machine could brew a user'spredetermined brew, a television set could tune to a predeterminedchannel, etc. As another example, a device generating EMI signals maynot have touch capability itself but may detect touches communicatedfrom device 230. Device 230 may detect contact between the user and thedevice generating the EMI signals and then communicate such contact tothe device. The device may then display content or provide functionalityin response to the communicated contact event. In particularembodiments, device 230 may use detected EMI signals to determine abackground noise level for use by other devices or sensors. For example,information about sensed EMI signals may be used to enhance a GPSlocation or tune a communication channel in a noisy environment.

In particular embodiments, device 230 may detect a user's contact withor proximity to (such as hovering near) another device transmitting EMIsignals. Thus, the transmitting device may be provided withtouch-sensitive functionality, even if that device does not itselfcontain touch-sensitive technology. FIG. 6 illustrates contact between auser wearing device 230 and a number of common household devices thatgenerate EMI signals. Contact with those devices may be sensed by device230, even though such devices do not themselves have touch-sensitivecapabilities.

In particular embodiments, a touch or interaction event may be localizedto a specific portion of a device. For example, EMI emissions may not beuniform along the physical dimensions of a device, for instance becausethe hardware that is emitting them is placed at different physicallocations in the device. By analyzing the EMI signals captured by theuser's body when touching or coming near a device, the specific portionof the device the interaction is on or near may be determined based onthe uniqueness of the EMI signal.

In particular embodiments, device 230 may detect and differentiatebetween contact and near-contact interactions, such as gesturesperformed in contact with a display compared to gestures performed abovea display, by: adjusting the gain of a received EMI signal; adjustingthe sampling rate used to acquire an EMI signal; adjusting cutofffrequencies used to detect or process an EMI signal; performingundersampling, or any suitable combination thereof. Thus, deviceswithout touch-sensitive technology may be provided withthree-dimensional gesture functionality due to detection by device 230of proximity, including gestures. In particular embodiments, proximityand contact measurements may be combined with output from other sensors,such as an accelerometer or any other suitable sensor on device 230, todetect gestures.

This disclosure contemplates that any device that generates EMI signalsmay be provided with any suitable touch functionality. For example,device 230 may warn a user when the user comes near a device, such ahigh-temperature or high-voltage device. As another example, a user mayinteract with content displayed on a device. Device 230 detects contactand communicates the contact to the touched device, which then executesthe appropriate functionality. Gesture functionality that incorporatestouch or hovering may also be detected. For example, a user may navigateamong slides of a displayed slideshow by performing swiping gestures,which are sensed by device 230 due to changes in EMI received as theuser moves relative to the displaying device. Such gestures may besensed by any suitable sensor in addition to the electrodes sensing EMIcoupled to the user, such as for example an accelerometer or agyroscope. In particular embodiments, touch detection may be combinedwith device identification to provide functionality to a user, such asdevice-specific notifications once the user comes near or into contactwith the device.

In particular embodiments, a device's circuitry, such as transducercircuitry, may be used to encode and transmit messages in EMI signals todevice 230. For example, state changes in circuitry (such as turning onor off, or entering a sleep mode) create a change in the detected EMIsignal. Intentional modulation of such signals may thus encode EMIsignals with communications to device 230. For example, a device'sdisplay may flash different colors at different intervals, may havespeakers that create sounds at different frequencies (audible,inaudible, or both) in different intervals, may switch on or offcomponents such as a fingerprint reader at certain intervals, or anyother suitable modulation.

In particular embodiments, communication may be used for device or userauthentication. For example, a device and device 230 may be paired by acommunication channel, such as for example Bluetooth. The user maycontact the device, such as the screen of the device, which may turn onthe screen and triggers the screen to flash a certain pattern usingdifferent colors. The flashing can happen at the portion of the screenunderneath the finger contacting the screen, thus making the processinvisible to the user. This pattern generates EMI signals that couple tothe user and are thus received by device 230, which decodes the signalsand sends an unlock token to the device over the Bluetooth connection.The device in this example may be any suitable device, such as forexample a mobile phone, a tablet, a laptop, a desktop computer, avehicle, a door or gate entry system, or any other suitable device. Inparticular embodiments, authentication may involve loading particularsettings or data associated with device 230, the user coupled to device230, or both. In particular embodiments, device 230 may act as arepository for the passwords and unlock tokens of its associated user.For example, a user's passwords associated with different devices andsources of EMI may be loaded onto device 230 and used to automaticallyunlock the devices when their presence is sensed by device 230. Thisdisclosure contemplates that communication may be unidirectional orbidirectional, as appropriate.

In particular embodiments, encoded signals may be used to transmitparticular information about the device generating EMI signals. Forexample, the device may transmit its MAC address by switchingtransducers in a predetermined way. Device 230 may use the identifyinginformation to perform automatic device identification and pairing. Inparticular embodiments, a user may identify particular content totransfer to a target device, which may be paired with device 230 overany suitable communication scheme. The user may then touch the targetdevice that is to receive the data. The target device transmitsidentifying information, such as its MAC address, by encoding a signalusing any suitable circuitry modulating EMI signals. Device 230 may thenestablish a communication between a source device transmitting the dataand the target device. In particular embodiments, the source device maybe device 230. In particular embodiments, source device may be anotherdevice communicating with device 230, which instructs the source deviceto establish a communication with the target device and/or transmit datato the target device. As this example illustrates, device 230 mayinitiate and/or act as an intermediary for communications between two ormore other devices.

In particular embodiments, detected EMI signals may be used to locate adevice emitting EMI signals and, in particular embodiments, locate auser relative to the detected device. For example, such signals may beused to create or improve a map of a region in which the detected deviceis located. If a detected device is at a known location (e.g.,“bookshelf in living room,” “kitchen,” “home,” etc.) then informationabout that device's location may be used to create a map of the user'senvironment and/or locate a user in the environment. In particularembodiments, location signals may be used in connection with other data,such as GPS data, Wi-Fi router data, cell tower data, or the like toimprove locating a user and objects in the user's environment. Thisdisclosure contemplates locating a device or user, or mapping a user'senvironment, based on any suitable location data associated with adetected device, including data about a room the device is in, alocation in a room the device is in, a building the device is in, orparticular location coordinates (such as latitude and longitude) of thedevice. This disclosure contemplates that such location data may haveany suitable level of granularity. In particular embodiments, locationdata may be used to locate a user and provide a map of the user'senvironment to the user. In particular embodiments, location data may beused to create or supplement a map of a user's environment or locate auser relative to a particular location or device. In particularembodiments, location data associate with a detected device may be usedto enhance determinations of a user's location when GPS signals areweak, such as when a user is indoors.

In particular embodiments, one or more users may be interacting with atouch-sensitive device. Information from the touch-sensitive device anda second device held or worn by the user may be used to identify theusers, associate the users with particular interactions, or both.

In particular embodiments, a second device may be a device capable ofdetecting EMI signals transmitted by the user's body, for example device230. For example, the second device may pair with a touch-sensitivedevice over a communication link, such as Bluetooth. The touch-sensitivedevice may detect a touch event and associate context data such as atimestamp with the touch event indicating the time at which the touchevent occurred. The second device may detect an EMI signal indicatingthat contact with a device has occurred and, if not already done, mayidentify the device as the touch-sensitive device. The second device maythen associate context data such as a timestamp with the contactindicating when the contact occurred. The second device may communicatethe timestamp to the touch-sensitive device, which may then compare thereceived timestamp with the timestamp associated with the touch event itdetected. If the two timestamps are sufficiently similar e.g., within acertain amount of tolerance) then the touch-sensitive device mayconclude that the touch event and detected contact represent the sameevent. Thus, the user associated with the event may be identified,either by assigning the user or second device an id, by receivinginformation form the second device identifying the user or device, orany other suitable means. While this example describes thetouch-sensitive device as receiving and comparing the timestamps, thisdisclosure contemplates that the touch-sensitive device may communicateits timestamp to the second device, which may perform the comparison.This disclosure further contemplates that each device may send itstimestamp and any other suitable information to another device, such asa server or a user's smart phone, which may perform the comparison orforward the information to any other device to perform the comparison.

In particular embodiments, a timestamp may be associated with a touchevent at a particular point during a continuous touch event, such as atwhen contact is first started. It particular embodiments, a timestampmay identify a time of contact of each of several points of contactduring a continuous touch event. For example, a timestamp could record atime of contact at regular intervals as a function of time or distancemoved relative to a touch-sensitive surface. In particular embodiments,a timestamp may record duration of a contact with a touch-sensitivedevice. For example, a timestamp may start recording when contact isfirst identified and continue recording until the contact ceases. Inparticular embodiments, a timestamp may identify a time associated witheach point of contact in a multi-touch event, such as a multi-touchgesture. For example, if the second device in the example above sensesEMI signals, then each point of contact from a multi-touch gesture maybe sensed, as more surface area of the skin in contact with a deviceresults in higher amplitude of the resultant EMI signal. Moreover,contact and separation may be detected based on the EMI signals evenwhen the user is stationary.

The examples above associate a timestamp with a touch event to determinewhether a touch event is attributable to a particular user. A timestampis one example of context data that may be used to associate a touchevent with a user. Any suitable time-dependent sensor reading may beused as context data to match touch events sensed by a touch device withtouch events sensed by a second device, such as a user's wearabledevice. For example, time-dependent sensor data from an accelerometer,microphone, or magnetic-field sensor may be used to associate a touchevent with a user. For example, the impulse of a user's touch event maybe detected by a touch-sensitive device. That signal may be compared toaccelerometer data captured by a wearable device on a user as the user'shand moves towards and on the touched device. As another example, themotion of a user's hand contacting and lifting from a touch device maybe detected by, e.g., an accelerometer of a wrist-worn device, and thatmotion may be compared to touch events and the duration of touch eventsdetected by a touch sensor, as the touch events detected by the toucheddevice should be sandwiched in time between the movement of the user'shand to the touch device and the movement of the user's hand from thetouch device. As another example, a microphone on a wearable device maydetect sounds waves generated by a touch event, and the touch eventdetected from that signal may be compared to a touch event detected bythe touch device. This disclosure contemplates that any suitabletime-dependent sensor data may be used in addition or as an alternativeto timestamps to detect touch events. This disclosure contemplates thatany such sensors or combination of sensors may be incorporated in or ona touched device or a wearable device, or both.

In particular embodiments, the identity of a user associated with atouch event may be used to customize a user experience, for example byloading or executing user-specific data when the user is identified.Such data may include specific settings, applications, and content. Forexample, a user's password keychain may be accessed when the associateduser is identified. As another example, applications a user haspurchased or installed on a device may be loaded onto the toucheddevice. As another example, user-specific data within an application,such as the user's emails, may be loaded or accessed when the associateduser is identified. As another example, user identification mayautomatically log the identified user into the device, and may do usinga profile or other data specific to the user. As another example, auser's preferences such as a background image, screen brightness, volumesetting, etc. may be loaded. As another example, a content filter may beused, for example when a user is identified as a child. As anotherexample, touch events may be cancelled if they result from a user thatis not authorized to interact with the device or to access the requesteddata or perform the requested functionality associated with the touchevent. In particular embodiments, detecting an unauthorized user mayresult in an unlocked device becoming locked.

As an example of functionality associated with user identification, afirst user may contact a touch-sensitive device. The contact may bedetected by a second device, such as device 230, and the user may beidentified, for example using the procedures described above. The firstuser may open an email application on the device, and the device mayload the first user's emails accordingly. If a second user comes intocontact with the device and opens the email application, that user maybe identified and the second user's email loaded accordingly. Inparticular embodiments, the device may access the user's informationfrom a user's profile stored on another device, such as a server. Inparticular embodiments, the user's information may be stored on thetouched device. In particular embodiments, the user's information may bestored on the second device.

In particular embodiments, user identification may enhance shareddevices, applications, and data. For example, annotations on shareddocuments may be distinguished among identified users.

In particular embodiments, two or more users may be interacting with adevice at the same time. Each user interacting with a device may beidentified using the example described above, so long as each user has asecond device, such as device 230, associated with that user. Moregenerally, N users may be identified as long as N−1 users have anassociated second device.

FIG. 7 illustrates example identifications of several users simultaneousinteracting with a touch-sensitive device. As illustrated in FIG. 7,each of users 720A, 720B, and 720C are generating touch events on ashared device such as touch-sensitive device 710. Each user is wearingan example device, wristwatch 730A, 730B, and 730C, respectively. Eachuser's touch interactions as determined by device 710 is associated withcontext data such as a timestamp indicating, e.g., a time of firstcontact, last contact, a duration of contacts, or the like. At the sametime, each of devices 730A, B, and C are recording contact events andassociating context data such as timestamps with the contact events. Asillustrated in FIG. 7, a timestamp associated with contact 750Adetermined by device 730A for user 720A corresponds to a timestampassociated with contact 740A determined by device 710 for the touchevent generated by user 720A. Timestamps associated with contact 750Band 750C likewise correspond to timestamps associated with contact 740Band 740C, respectively. Thus, device 710, devices 720A-C, or any othersuitable device may identify particular touch events with particularusers based on the correspondence between timestamps for contacts 750A-Cand timestamps for contacts 740A-C. In particular embodiments, device710 may provide different output or functionality based on the user'sidentity. For example, device 710 may assign each user an input color,and a user's touch input on a display of device 710 may be displayedusing that user's assigned color. This disclosure contemplates that thetouch and time measurements may take any suitable form, including butnot limited to the touch and time measurements illustrated in FIG. 7.While the example of FIG. 7 illustrates touch events occurringsequentially in time, this disclosure contemplates that touch eventsoccurring simultaneous—or touch events that include a combination ofsequential and simultaneous touch events—may be differentiated using thetechniques described herein.

Contact between a user and the touch-sensitive device can be detectedusing multiple on-board sensors in the second device. While the examplesabove discuss detecting contact using an EMI sensor, this disclosurecontemplates detecting contact using any suitable sensor or combinationof sensors, such as for example an accelerometer, microphone, ormagnetic-field sensor. In particular embodiments, the contact sensed bythe sensor is associated with a timestamp, and that timestamp iscompared to a timestamp associated with a contact event detected by thetouch-sensitive device. FIG. 8 illustrates an example identification ofa user using data from an accelerometer of example device 830. Asindicated in FIG. 8, user 820 wearing a wristwatch 830 and isinteracting with device 810. User 820 creates touch events 840A-C.Device 810 records touch events and associates timestamps with recordedcontacts 850A-C that correspond to the touch events. In addition, anaccelerometer of device 830 detects touch events 840A-C and associatestimestamps based on accelerometer data 860A-C. Each touch event may beassociated with the user by comparing the timestamps recorded by device810 and device 830. In particular embodiments, an application orfunctionality may require multiple tap events, as illustrated in FIG. 8,to aid in identification of a particular user. For example, a user maybe asked to tap a display three times in order to log in to the deviceor access user-specific content, such as the user's emails.

In particular embodiments, lag between touch events detected by atouch-sensitive device and a second device may be determined in order toaccurately associate touch events. Lag may occur due to differentprocessing speeds associated with different sensing technologies, toclocks that are not completely synchronized, to delays in communicationof timestamps or other context data, or any suitable combinationthereof. In particular embodiments, lag may be determined for aparticular device or sensing technology during a calibration event, forexample by asking a user to contact a display and comparing thedifference in two timestamps each associated with two different sensingtechnologies. In particular embodiments, one or more offsets may then beapplied to timestamps associated with one or both sensing technologiesto synchronize the sensing technologies.

In particular embodiments, a timestamp may be a notification that atouch event has been detected, i.e. the notification may itself be atimestamp indicating that a touch event has just occurred. In thatembodiment, a lag in communication may be determined to account for thedifference between the time of detection and the time the notificationis received. For example, a touch-sensitive device and a second devicemay pair using, for example, a Wi-Fi connection. The touch-sensitivedevice may request a notification from the second device and compare thetime of the request to the time the notification is received. Thetouch-sensitive device may use the difference between the two times todetermine an appropriate, synchronizing offset.

FIG. 9 illustrates an example computer system 800. In particularembodiments, one or more computer systems 800 perform one or more stepsof one or more methods described or illustrated herein. The processesand systems described herein may be implemented using one or morecomputer systems 800. In particular embodiments, one or more computersystems 800 provide functionality described or illustrated herein. Inparticular embodiments, software running on one or more computer systems800 performs one or more steps of one or more methods described orillustrated herein or provides functionality described or illustratedherein. Particular embodiments include one or more portions of one ormore computer systems 800. Herein, reference to a computer system mayencompass a computing device, and vice versa, where appropriate.Moreover, reference to a computer system may encompass one or morecomputer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems800. This disclosure contemplates computer system 800 taking anysuitable physical form. As example and not by way of limitation,computer system 800 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, a tablet computer system, or acombination of two or more of these. Where appropriate, computer system800 may include one or more computer systems 800; be unitary ordistributed; span multiple locations; span multiple machines; spanmultiple data centers; or reside in a cloud, which may include one ormore cloud components in one or more networks. Where appropriate, one ormore computer systems 800 may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems 800 may perform in real time or in batch modeone or more steps of one or more methods described or illustratedherein. One or more computer systems 800 may perform at different timesor at different locations one or more steps of one or more methodsdescribed or illustrated herein, where appropriate.

In particular embodiments, computer system 800 includes a processor 902,memory 904, storage 906, an input/output (I/O) interface 908, acommunication interface 910, and a bus 812. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 902 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 902 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 904, or storage 906; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 904, or storage 906. In particular embodiments, processor902 may include one or more internal caches for data, instructions, oraddresses. This disclosure contemplates processor 902 including anysuitable number of any suitable internal caches, where appropriate. Asan example and not by way of limitation, processor 902 may include oneor more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 904 or storage 906, andthe instruction caches may speed up retrieval of those instructions byprocessor 902. Data in the data caches may be copies of data in memory904 or storage 906 for instructions executing at processor 902 tooperate on; the results of previous instructions executed at processor902 for access by subsequent instructions executing at processor 902 orfor writing to memory 904 or storage 906; or other suitable data. Thedata caches may speed up read or write operations by processor 902. TheTLBs may speed up virtual-address translation for processor 902. Inparticular embodiments, processor 902 may include one or more internalregisters for data, instructions, or addresses. This disclosurecontemplates processor 902 including any suitable number of any suitableinternal registers, where appropriate. Where appropriate, processor 902may include one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 902. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 904 includes main memory for storinginstructions for processor 902 to execute or data for processor 902 tooperate on. As an example and not by way of limitation, computer system800 may load instructions from storage 906 or another source (such as,for example, another computer system 800) to memory 904. Processor 902may then load the instructions from memory 904 to an internal registeror internal cache. To execute the instructions, processor 902 mayretrieve the instructions from the internal register or internal cacheand decode them. During or after execution of the instructions,processor 902 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor902 may then write one or more of those results to memory 904. Inparticular embodiments, processor 902 executes only instructions in oneor more internal registers or internal caches or in memory 904 (asopposed to storage 906 or elsewhere) and operates only on data in one ormore internal registers or internal caches or in memory 904 (as opposedto storage 906 or elsewhere). One or more memory buses (which may eachinclude an address bus and a data bus) may couple processor 902 tomemory 904. Bus 812 may include one or more memory buses, as describedbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 902 and memory 904 and facilitateaccesses to memory 904 requested by processor 902. In particularembodiments, memory 904 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate, and this RAM may be dynamicRAM (DRAM) or static RAM (SRAM), where appropriate. Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 904 may include one ormore memories 904, where appropriate. Although this disclosure describesand illustrates particular memory, this disclosure contemplates anysuitable memory.

In particular embodiments, storage 906 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 906may include a hard disk drive (HDD), a floppy disk drive, flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Storage906 may include removable or non-removable (or fixed) media, whereappropriate. Storage 906 may be internal or external to computer system800, where appropriate. In particular embodiments, storage 906 isnon-volatile, solid-state memory. In particular embodiments, storage 906includes read-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 906 taking any suitable physicalform. Storage 906 may include one or more storage control unitsfacilitating communication between processor 902 and storage 906, whereappropriate. Where appropriate, storage 906 may include one or morestorages 906. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 908 includes hardware,software, or both, providing one or more interfaces for communicationbetween computer system 800 and one or more I/O devices. Computer system800 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 800. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 908 for them. Where appropriate, I/O interface 908 mayinclude one or more device or software drivers enabling processor 902 todrive one or more of these I/O devices. I/O interface 908 may includeone or more I/O interfaces 908, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 910 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 800 and one or more other computer systems 800 or one ormore networks. As an example and not by way of limitation, communicationinterface 910 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or other wire-basednetwork or a wireless NIC (WNIC) or wireless adapter for communicatingwith a wireless network, such as a WI-FI network. This disclosurecontemplates any suitable network and any suitable communicationinterface 910 for it. As an example and not by way of limitation,computer system 800 may communicate with an ad hoc network, a personalarea network (PAN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), body area network (BAN), orone or more portions of the Internet or a combination of two or more ofthese. One or more portions of one or more of these networks may bewired or wireless. As an example, computer system 800 may communicatewith a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), aWI-FI network, a WI-MAX network, a cellular telephone network (such as,for example, a Global System for Mobile Communications (GSM) network),or other suitable wireless network or a combination of two or more ofthese. Computer system 800 may include any suitable communicationinterface 910 for any of these networks, where appropriate.Communication interface 910 may include one or more communicationinterfaces 910, where appropriate. Although this disclosure describesand illustrates a particular communication interface, this disclosurecontemplates any suitable communication interface.

In particular embodiments, bus 812 includes hardware, software, or bothcoupling components of computer system 800 to each other. As an exampleand not by way of limitation, bus 812 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 812may include one or more buses 812, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,feature, functions, operations, or steps, any of these embodiments mayinclude any combination or permutation of any of the components,elements, features, functions, operations, or steps described orillustrated anywhere herein that a person having ordinary skill in theart would comprehend. Furthermore, reference in the appended claims toan apparatus or system or a component of an apparatus or system beingadapted to, arranged to, capable of, configured to, enabled to, operableto, or operative to perform a particular function encompasses thatapparatus, system, component, whether or not it or that particularfunction is activated, turned on, or unlocked, as long as thatapparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative.

What is claimed is:
 1. An apparatus comprising: an electrode configuredto receive a signal from a body of a user, the received signal based onan electromagnetic interference (EMI) signal generated by an object thatis external to the apparatus; and one or more processors coupled to theelectrode and configured to: detect, based on the signal received by theelectrode, a contact between the user and the object; access a datastore comprising a plurality of object identifications and correspondingEMI profiles; compare at least a portion of the signal received by theelectrode with one or more EMI profiles from the data store; select,based on the comparison, an EMI profile corresponding to the signalreceived by the electrode; identify the object contacted by the userusing the object identification corresponding to the selected EMIprofile; and further identify, based on the signal received by theelectrode and from one of a plurality of EMI profiles in the data storecorresponding to the identified object, a context of the user, wherein:each of the plurality of EMI profiles in the data store corresponding tothe identified object identify a different context; a first one of theplurality of EMI profiles corresponding to the object identifies theobject at first time of day; and a second one of the plurality of EMIprofiles corresponding to the object identifies the object at secondtime of day.
 2. The apparatus of claim 1, wherein: a third one of theplurality of EMI profiles corresponding to the object identifies theobject and a first location of the object; and a fourth one of theplurality of EMI profiles corresponding to the object identifies theobject and a second location of the object.
 3. The apparatus of claim 1,wherein the one or more processors are further configured to determine,based on the identified object, an activity of the user.
 4. Theapparatus of claim 1, wherein the one or more processors are furtherconfigured to determine, based on the signal received by the electrode,one or more operating modes of the identified object.
 5. The apparatusof claim 1, wherein: the apparatus further comprises a display; and theone or more processors are further configured to provide for display onthe display the identification of the object.
 6. The apparatus of claim5, wherein the one or more processors are further configured to:determine, based on the signal received by the electrode, one or moreoperating modes of the identified object; and provide for display on thedisplay the one or more operating modes of the object.
 7. The apparatusof claim 1, wherein: the object comprises a touchscreen; and the one ormore processors are further configured to initiate a communication tothe touchscreen identifying the user.
 8. The apparatus of claim 7,wherein the one or more processors are further configured to receivefrom the user input identifying the user.
 9. The apparatus of claim 1,wherein: the apparatus further comprises a display; and the one or moreprocessors are further configured to provide for display on the displaya notification associated with the identified object.
 10. The apparatusof claim 9, wherein the notification is based on the location of theuser.
 11. The apparatus of claim 9, wherein the notification is based ona time at which the contact between the user and the object occurred.12. The apparatus of claim 1, wherein: the apparatus further comprises adisplay; and the one or more processors are further configured toreceive user input defining a notification to display on the displaywhen a user contacts the object.
 13. The apparatus of claim 12, whereinthe user input comprises an identification of one or more of: a contentof the notification; a time during which to display the notification; ora location of the user at which to display the notification.
 14. One ormore non-transitory computer-readable storage media comprising softwarethat is operable when executed to: determine, based on a signal receivedat an electrode of an apparatus from a body of a user, a contact betweenthe user and an object external to the apparatus, wherein the signalreceived at the electrode is based on an electromagnetic interference(EMI) signal generated by the object; access a data store comprising aplurality of object identifications and corresponding EMI profiles;compare at least a portion of the signal received by the electrode withone or more EMI profiles from the data store; select, based on thecomparison, an EMI profile corresponding to the signal received by theelectrode; identify the object contacted by the user using the objectidentification corresponding to the selected EMI profile; and furtheridentify, based on the signal received by the electrode and from one ofa plurality of EMI profiles in the data store corresponding to theidentified object, a context of the user, wherein: each of the pluralityof EMI profiles in the data store corresponding to the identified objectidentify a different context; a first one of the plurality of EMIprofiles corresponding to the object identifies the object at first timeof day; and a second one of the plurality of EMI profiles correspondingto the object identifies the object at second time of day.
 15. The mediaof claim 14, wherein: a third one of the plurality of EMI profilescorresponding to the object identifies the object and a first locationof the object; and a fourth one of the plurality of EMI profilescorresponding to the object identifies the object and a second locationof the object.
 16. The media of claim 14, wherein the software isfurther operable when executed to determine, based on the identifiedobject, an activity of the user.
 17. A method comprising: by a computingdevice, detecting, based on a signal received at an electrode of anapparatus from a body of a user, a contact between the user and anobject external to the apparatus, wherein the signal received at theelectrode is based on an electromagnetic interference (EMI) signalgenerated by the object; by a computing device, accessing a data storecomprising a plurality of object identifications and corresponding EMIprofiles; by a computing device, comparing at least a portion of thesignal received by the electrode with one or more EMI profiles from thedata store; by a computing device, selecting, based on the comparison,an EMI profile corresponding to the signal received by the electrode; bya computing device, identifying the object contacted by the user usingthe object identification corresponding to the selected EMI profile; andby a computing device, further identifying, based on the signal receivedby the electrode and from one of a plurality of EMI profiles in the datastore corresponding to the identified object, a context of the user,wherein: each of the plurality of EMI profiles in the data storecorresponding to the identified object identify a different context; afirst one of the plurality of EMI profiles corresponding to the objectidentifies the object at first time of day; and a second one of theplurality of EMI profiles corresponding to the object identifies theobject at second time of day.
 18. The method of claim 17, wherein: athird one of the plurality of EMI profiles corresponding to the objectidentifies the object and a first location of the object; and a fourthone of the plurality of EMI profiles corresponding to the objectidentifies the object and a second location of the object.
 19. Themethod of claim 17, further comprising determining, based on theidentified object, an activity of the user.